//
//
//class Solution {
//    public String decodeString(String s) {
//        Stack<Character> stack = new Stack<>();
//        for (int i = 0; i < s.length(); i++) {
//            char ch = s.charAt(i);
//            if (ch != ']') {
//                stack.push(ch);
//            } else {
//                // 此时遍历到右括号了，必须出栈到遇到左括号，以及前面的数字
//                StringBuilder content = new StringBuilder();
//                while (!stack.isEmpty() && stack.peek() != '[') {
//                    char c = stack.pop();
//                    content.insert(0, c);
//
//                }
//                // 此时top是左括号
//                stack.pop();
//                // 再找前面的数字
//                StringBuilder num = new StringBuilder();
//                while (!stack.isEmpty() && isNum(stack.peek())) {
//                    num.insert(0, stack.pop());
//                }
//                int number = 1;
//                if (num.length() != 0) {
//                    number = Integer.valueOf(num.toString());
//                }
//                StringBuilder str = new StringBuilder();
//                for (int j = 0; j < number; j++) {
//                    str.append(content);
//                }
//                for (int j = 0; j < str.length(); j++) {
//                    stack.push(str.charAt(j));
//                }
//
//            }
//        }
//        StringBuilder ret = new StringBuilder();
//        while (!stack.isEmpty()) {
//            ret.insert(0, stack.pop());
//        }
//        return ret.toString();
//
//    }
//
//
//    public boolean isNum(char ch) {
//        return ch >= '0' && ch <= '9';
//    }
//}